html,
body {
	max-height: 100%;
	overflow: hidden;
}
[mz] {
	transition-duration: 1000ms;
	transition-delay: 0;
}
[mz] {
	@for $i from 1 through 60 {
		&[mz-duration='#{$i * 50}'] {
			transition-duration: #{$i * 50}ms;
		}
		&[mz-delay='#{$i * 50}'] {
			transition-delay: 0s;
			&.mz-animate {
				transition-delay: #{$i * 50}ms;
			}
		}
	}
}
[mz] {
	pointer-events: none;
	&.mz-animate {
		pointer-events: auto;
	}
}
$mz-easing: (
	linear: cubic-bezier(0.25, 0.25, 0.75, 0.75),
	ease: cubic-bezier(0.25, 0.1, 0.25, 1),
	ease-in: cubic-bezier(0.42, 0, 1, 1),
	ease-out: cubic-bezier(0, 0, 0.58, 1),
	ease-in-out: cubic-bezier(0.42, 0, 0.58, 1),
	ease-in-back: cubic-bezier(0.6, -0.28, 0.735, 0.045),
	ease-out-back: cubic-bezier(0.175, 0.885, 0.32, 1.275),
	ease-in-out-back: cubic-bezier(0.68, -0.55, 0.265, 1.55),
	ease-in-sine: cubic-bezier(0.47, 0, 0.745, 0.715),
	ease-out-sine: cubic-bezier(0.39, 0.575, 0.565, 1),
	ease-in-out-sine: cubic-bezier(0.445, 0.05, 0.55, 0.95),
	ease-in-quad: cubic-bezier(0.55, 0.085, 0.68, 0.53),
	ease-out-quad: cubic-bezier(0.25, 0.46, 0.45, 0.94),
	ease-in-out-quad: cubic-bezier(0.455, 0.03, 0.515, 0.955),
	ease-in-cubic: cubic-bezier(0.55, 0.085, 0.68, 0.53),
	ease-out-cubic: cubic-bezier(0.25, 0.46, 0.45, 0.94),
	ease-in-out-cubic: cubic-bezier(0.455, 0.03, 0.515, 0.955),
	ease-in-quart: cubic-bezier(0.55, 0.085, 0.68, 0.53),
	ease-out-quart: cubic-bezier(0.25, 0.46, 0.45, 0.94),
	ease-in-out-quart: cubic-bezier(0.455, 0.03, 0.515, 0.955)
);

// Easings implementations
// Default timing function: 'ease'
[mz] {
	@each $key, $val in $mz-easing {
		&[mz-easing='#{$key}'] {
			transition-timing-function: $val;
		}
	}
}
// Animations variables
$mz-distance: 100px !default;
/**
    * Fade animations:
    * fade
    * fade-up, fade-down, fade-left, fade-right
    * fade-up-right, fade-up-left, fade-down-right, fade-down-left
    */
[mz^='fade'] {
	opacity: 0;
	transition-property: opacity, transform;
	&.mz-animate {
		opacity: 1;
		transform: none;
	}
}
[mz='fade-up'] {
	transform: translate3d(0, $mz-distance, 0);
}
[mz='fade-down'] {
	transform: translate3d(0, -$mz-distance, 0);
}
[mz='fade-right'] {
	transform: translate3d(-$mz-distance, 0, 0);
}
[mz='fade-left'] {
	transform: translate3d($mz-distance, 0, 0);
}
[mz='fade-up-right'] {
	transform: translate3d(-$mz-distance, $mz-distance, 0);
}
[mz='fade-up-left'] {
	transform: translate3d($mz-distance, $mz-distance, 0);
}
[mz='fade-down-right'] {
	transform: translate3d(-$mz-distance, -$mz-distance, 0);
}
[mz='fade-down-left'] {
	transform: translate3d($mz-distance, -$mz-distance, 0);
}

/**
    * Zoom animations:
    * zoom-in, zoom-in-up, zoom-in-down, zoom-in-left, zoom-in-right
    * zoom-out, zoom-out-up, zoom-out-down, zoom-out-left, zoom-out-right
    */

[mz^='zoom'] {
	opacity: 0;
	transition-property: opacity, transform;
	&.mz-animate {
		opacity: 1;
		transform: translate3d(0, 0, 0) scale(1);
	}
}
[mz='zoom-in'] {
	transform: scale(0.6);
}
[mz='zoom-in-up'] {
	transform: translate3d(0, $mz-distance, 0) scale(0.6);
}
[mz='zoom-in-down'] {
	transform: translate3d(0, -$mz-distance, 0) scale(0.6);
}
[mz='zoom-in-right'] {
	transform: translate3d(-$mz-distance, 0, 0) scale(0.6);
}
[mz='zoom-in-left'] {
	transform: translate3d($mz-distance, 0, 0) scale(0.6);
}
[mz='zoom-out'] {
	transform: scale(1.2);
}
[mz='zoom-out-up'] {
	transform: translate3d(0, $mz-distance, 0) scale(1.2);
}
[mz='zoom-out-down'] {
	transform: translate3d(0, -$mz-distance, 0) scale(1.2);
}
[mz='zoom-out-right'] {
	transform: translate3d(-$mz-distance, 0, 0) scale(1.2);
}
[mz='zoom-out-left'] {
	transform: translate3d($mz-distance, 0, 0) scale(1.2);
}

/**
    * Slide animations
    */

[mz^='slide'] {
	transition-property: transform visibility;
	visibility: hidden;
	&.mz-animate {
		visibility: visible;
		transform: translate3d(0, 0, 0);
	}
}
[mz='slide-up'] {
	transform: translate3d(0, 100%, 0);
}
[mz='slide-down'] {
	transform: translate3d(0, -100%, 0);
}
[mz='slide-right'] {
	transform: translate3d(-100%, 0, 0);
}
[mz='slide-left'] {
	transform: translate3d(100%, 0, 0);
}

/**
    * Flip animations:
    * flip-left, flip-right, flip-up, flip-down
    */

[mz^='flip'] {
	backface-visibility: hidden;
	transition-property: transform;
}
[mz='flip-left'] {
	transform: perspective(2500px) rotateY(-100deg);
	&.mz-animate {
		transform: perspective(2500px) rotateY(0);
	}
}
[mz='flip-right'] {
	transform: perspective(2500px) rotateY(100deg);
	&.mz-animate {
		transform: perspective(2500px) rotateY(0);
	}
}
[mz='flip-up'] {
	transform: perspective(2500px) rotateX(-100deg);
	&.mz-animate {
		transform: perspective(2500px) rotateX(0);
	}
}
[mz='flip-down'] {
	transform: perspective(2500px) rotateX(100deg);
	&.mz-animate {
		transform: perspective(2500px) rotateX(0);
	}
}
